#ifndef SOUND_HEADER
#define SOUND_HEADER

#include <irrKlang.h>
#include <iostream>

class Sound{
public:
	Sound(std::string, std::string);	//Constructor with first parameter for name of the sound and second for path of the file
	~Sound();							//Destructor

	std::string getName() const;		//Gets the name of the sound

	void play();						//Plays the sound default is 1 time
	void stop();						//Stops the sound

	bool getIsLooped();					//get if the sound is looped
	void setIsLooped(bool);				//set if the sound will be looped
	
	// Volume controls
	//Scale between 0 and 100;
    void setVolume(int);				//Sets volume
    void increaseVolume();				//Increases volume by 10
    void increaseVolume(int);			//Increases volume to the specified volume (0-100)
    void decreaseVolume();				//Decreases volume by 10
    void decreaseVolume(int);			//Decreases volume to the specified volume (0-100)
    int getCurrentVolume() const;		//Returns master volume
	
	bool isSoundPlaying();				//get if sound is playing right now

private:
	irrklang::ISoundSource* soundSource;	//irrKlang Sound Source
	irrklang::ISound* sound;				//irrKlang Sound
	std::string fileName;					//Sound file path
	std::string _name;						//Name of the File
    int _volume;							//Volume scale between 0 and 100
};

#endif